3. 파생 변수를 질의 함수로 바꾸기
가변 데이터의 유효범위를 확실하게 정하여 사이드이펙트를 방지한다. 가변 데이터의 값을 계산해주는 함수를 만드는 방법을 적용해보자.
절차
- 변수 값이 갱신되는 지점을 찾는다. 필요하면 변수를 쪼갠다.
- 해당 변수 값을 계산해주는 함수를 정한다.
- 해당 변수가 사용되는 곳에 assertion을 추가하여 계산결과와 변수의 값이 같은지 확인해본다.
- 테스트
- 변수를 읽는 코드를 모두 함수호출로 대체한다.
- 테스트
- 변수를 선언하고 갱신한 코드를 제거한다.
예시 코드
😞 Before
get discountTotal(){
return this._discountedTotal
}
set discount(aNumber){
const old = this._discount
this._discount = aNumber
this._discountedTotal += old - aNumber
}
😃 After
get discountedTotal(){
return this._baseTotal - this._discount
}
set discount(aNumber){
this._discount = aNumber
}